import Vue from 'vue'
import Vuex from 'vuex'
import  state from './state'
import  mutations from './mutations'
import  actions from './actions'
import getters from './getters'
import saveInLocal from './plugin/saveInLocal'
//用户模块
import user from './module/user'
Vue.use(Vuex)

export default new Vuex.Store({
  //开启严格模式 在严格模式下，无论何时发生了状态变更且不是由 mutation 函数引起的，将会抛出错误。这能保证所有的状态变更都能被调试工具跟踪到。
  //注意不要在发布环境下启用严格模式！严格模式会深度监测状态树来检测不合规的状态变更——请确保在发布环境下关闭严格模式，以避免性能损失。
  strict: process.env.NODE_ENV !== 'production', //process.env.NODE_ENV !== 'production'  就是判断他是不是严格模式 这个返回一个布尔值正好对应在发布环境下关闭严格模式在开发环境下开启严格模式
  state,
  mutations,
  actions,
  getters,
  modules: {
    user
  },
  //挂载插件
  plugins:[saveInLocal]
})
